home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 January / EnigmA AMIGA RUN 33 (1999)(G.R. Edizioni)(IT)[!][issue 1999-01].iso / earcd / apus / install / old / hdinstll.lha / hdinstall < prev    next >
Text File  |  1998-04-12  |  12KB  |  508 lines

  1. #! /bin/sh
  2. #hacked version of cdrdisk-net to insall from harddrive
  3. # Set up path
  4. PATH=.:/bin:/sbin:/usr/bin:/usr/sbin
  5. export PATH
  6.  
  7. # Set up terminal
  8. TERM=con80x25
  9. export TERM
  10.  
  11. # Make / writeable
  12. mount -w -n -o remount /dev/ramdisk /
  13.  
  14. # Define all [default] values
  15. host_addr="198.6.75.7"
  16. host_name="Helios"
  17. network_addr="198.6.75.0"
  18. network_mask="255.255.255.0"
  19. broadcast_addr="198.6.75.255"
  20. gateway_addr="none"
  21. server_name="198.6.75.3"
  22. #server_loc="/usr/gary/minix/tools/linux"
  23. server_loc="/usr/src/Linux.MIN"
  24. packed_loc="/usr/src/TAPE_FILE3.gz"
  25. hpacked_loc="/mnt/chrproot.tar.gz"
  26. gzip_cmd="gzip"
  27. mkdir_cmd="mkdir"
  28. server_uid="root"
  29. root_dev="dev/sda"
  30. cfdisk_options="-z"
  31. mkfs_options="-b1024"
  32. tape_dev="/dev/nst0"
  33. floppy_dev="/dev/fd0"
  34.  
  35. while :
  36. do
  37.  
  38. dialog --clear --title "Installation Menu" \
  39.         --menu "What style of installation do you wish to perform?\n" \
  40.         20 70 7 \
  41.         "Packed Net"  "Packed Linux files from server [aka TAPE_FILE3]" \
  42.         "Net"         "'cpio' from a Linux file system on a server" \
  43.         "Tape"        "Local streaming [SCSI] tape" \
  44.         "Harddisk"   "Packed Linux files from harddisk" \
  45.         "Diskettes"   "Floppy Diskettes" \
  46.    "MkLinux"     "MkLinux CD Install" \
  47.    "CDROM"       "[Experimental] CD Install" \
  48.         2> /tmp/result
  49. retval=$?
  50. install_type=`cat /tmp/result`
  51. case $retval in
  52.   1)
  53.     echo "Cancelled!"; exit;;
  54.   255)
  55.     continue;;
  56. esac
  57.  
  58.  
  59. if [ "$install_type" = "Tape" ] ; then
  60.  
  61. # Get tape device name
  62. dialog --title "Tape Device Name" --clear \
  63.         --inputbox "What [SCSI] tape do you want to install from?\n\
  64.     Be sure to use the non-rewinding name!\n"\
  65.     16 51 $tape_dev 2> /tmp/result
  66. retval=$?
  67. case $retval in
  68.   1)
  69.     echo "Cancelled!"; exit;;
  70.   255)
  71.     continue;;
  72. esac
  73. tape_dev=`cat /tmp/result`
  74.  
  75. elif [ "$install_type" = "Diskettes" -o "$install_type" = "MkLinux" ] ; then
  76.  
  77. # Get floppy device name
  78. dialog --title "Floppy Device Name" --clear \
  79.         --inputbox "What is the device name for your floppy?\n\
  80.    Note: BeBox should be '/dev/fd1'\n"\
  81.    16 51 $floppy_dev 2> /tmp/result
  82. retval=$?
  83. case $retval in
  84.   1)
  85.     echo "Cancelled!"; exit;;
  86.   255)
  87.     continue;;
  88. esac
  89. floppy_dev=`cat /tmp/result`
  90.  
  91. fi
  92.  
  93. # Get network address
  94. dialog --title "Host Address" --clear \
  95.         --inputbox "What is your host [network] address? \n"\
  96.    16 51 $host_addr 2> /tmp/result
  97. retval=$?
  98. case $retval in
  99.   1)
  100.     echo "Cancelled!"; exit;;
  101.   255)
  102.     continue;;
  103. esac
  104. host_addr=`cat /tmp/result`
  105.  
  106. # Get network host name
  107. dialog --title "Host Name" --clear \
  108.         --inputbox "What is your host [network] name? \n"\
  109.    16 51 $host_name 2> /tmp/result
  110. retval=$?
  111. case $retval in
  112.   1)
  113.     echo "Cancelled!"; exit;;
  114.   255)
  115.     continue;;
  116. esac
  117. host_name=`cat /tmp/result`
  118.  
  119. # Get network name
  120. dialog --title "Network Number" --clear \
  121.         --inputbox "What is your network number? \n"\
  122.    16 51 $network_addr 2> /tmp/result
  123. retval=$?
  124. case $retval in
  125.   1)
  126.     echo "Cancelled!"; exit;;
  127.   255)
  128.     continue;;
  129. esac
  130. network_addr=`cat /tmp/result`
  131.  
  132. # Get network mask
  133. dialog --title "Network Mask" --clear \
  134.         --inputbox "What is your network mask? \n"\
  135.    16 51 $network_mask 2> /tmp/result
  136. retval=$?
  137. case $retval in
  138.   1)
  139.     echo "Cancelled!"; exit;;
  140.   255)
  141.     continue;;
  142. esac
  143. network_mask=`cat /tmp/result`
  144.  
  145. # Get broadcast address
  146. dialog --title "Broadcast Address" --clear \
  147.         --inputbox "What is your broadcast address? \n"\
  148.    16 51 $broadcast_addr 2> /tmp/result
  149. retval=$?
  150. case $retval in
  151.   1)
  152.     echo "Cancelled!"; exit;;
  153.   255)
  154.     continue;;
  155. esac
  156. broadcast_addr=`cat /tmp/result`
  157.  
  158. # Get gateway name
  159. dialog --title "Gateway Address" --clear \
  160.         --inputbox "If you need to use a gateway\n\
  161. to reach your server, enter it's address here.\n\
  162. If you don't need a gateway, set the value to 'none'.\n\n\
  163. Gateway address? \n"\
  164.    16 70 $gateway_addr 2> /tmp/result
  165. retval=$?
  166. case $retval in
  167.   1)
  168.     echo "Cancelled!"; exit;;
  169.   255)
  170.     continue;;
  171. esac
  172. gateway_addr=`cat /tmp/result`
  173.  
  174. if [ "$install_type" = "Net" -o "$install_type" = "Packed Net" ] ; then
  175.  
  176. # Get host name
  177. dialog --title "Server Name" --clear \
  178.         --inputbox "What is your server's network address? \n"\
  179.    16 51 $server_name 2> /tmp/result
  180. retval=$?
  181. case $retval in
  182.   1)
  183.     echo "Cancelled!"; exit;;
  184.   255)
  185.     continue;;
  186. esac
  187. server_name=`cat /tmp/result`
  188.  
  189. # Get host name
  190. dialog --title "Server User Name" --clear \
  191.         --inputbox "User name to use on server? \n"\
  192.    16 51 $server_uid 2> /tmp/result
  193. retval=$?
  194. case $retval in
  195.   1)
  196.     echo "Cancelled!"; exit;;
  197.   255)
  198.     continue;;
  199. esac
  200. server_uid=`cat /tmp/result`
  201.  
  202. if [ "$install_type" = "Net" ] ; then
  203. # Get file location
  204. dialog --title "File Location" --clear \
  205.         --inputbox "Where are the Linux/PPC files on your server? \n"\
  206.    16 51 $server_loc 2> /tmp/result
  207. retval=$?
  208. case $retval in
  209.   1)
  210.     echo "Cancelled!"; exit;;
  211.   255)
  212.     continue;;
  213. esac
  214. server_loc=`cat /tmp/result`
  215.  
  216. else
  217.  
  218. # Get file location
  219. dialog --title "File Location" --clear \
  220.         --inputbox "Where is the Linux/PPC distribution image \n\
  221.    file [TAPE_FILE3] on your server? \n"\
  222.    16 51 $packed_loc 2> /tmp/result
  223. retval=$?
  224. case $retval in
  225.   1)
  226.     echo "Cancelled!"; exit;;
  227.   255)
  228.     continue;;
  229. esac
  230. packed_loc=`cat /tmp/result`
  231.  
  232. # Get 'gzip' command location
  233. dialog --title "'gzip' Command Location" --clear \
  234.         --inputbox "What is the path for 'gzip' on your server?\n"\
  235.    16 51 $gzip_cmd 2> /tmp/result
  236. retval=$?
  237. case $retval in
  238.   1)
  239.     echo "Cancelled!"; exit;;
  240.   255)
  241.     continue;;
  242. esac
  243. gzip_cmd=`cat /tmp/result`
  244.  
  245. fi
  246.  
  247.  # End of network specific setups
  248. fi
  249.  
  250.  
  251. if [ "$install_type" = "Harddisk" ] ; then
  252.  
  253. # Get file location
  254. dialog --title "File Location" --clear \
  255.         --inputbox "Where is the Linux/PPC distribution image \n"\
  256.    16 51 $hpacked_loc 2> /tmp/result
  257. retval=$?
  258. case $retval in
  259.   1)
  260.     echo "Cancelled!"; exit;;
  261.   255)
  262.     continue;;
  263. esac
  264. packed_loc=`cat /tmp/result`
  265.  
  266.  
  267. # Get 'mkdir' command location
  268. dialog --title "'mkdir' Command Location" --clear \
  269.         --inputbox "What is the path for 'mkdir' on your disk?\n"\
  270.    16 51 $mkdir_cmd 2> /tmp/result
  271. retval=$?
  272. case $retval in
  273.   1)
  274.     echo "Cancelled!"; exit;;
  275.   255)
  276.     continue;;
  277. esac
  278. mkdir_cmd=`cat /tmp/result`
  279.  
  280. # Get 'gzip' command location
  281. dialog --title "'gzip' Command Location" --clear \
  282.         --inputbox "What is the path for 'gzip' on your disk?\n"\
  283.    16 51 $gzip_cmd 2> /tmp/result
  284. retval=$?
  285. case $retval in
  286.   1)
  287.     echo "Cancelled!"; exit;;
  288.   255)
  289.     continue;;
  290. esac
  291. gzip_cmd=`cat /tmp/result`
  292.  
  293. fi
  294.  
  295. # Get root device name
  296. dialog --title "Root Device Name" --clear \
  297.         --inputbox "What disk do you want to install on?\n"\
  298.    16 51 $root_dev 2> /tmp/result
  299. retval=$?
  300. case $retval in
  301.   1)
  302.     echo "Cancelled!"; exit;;
  303.   255)
  304.     continue;;
  305. esac
  306. root_dev=`cat /tmp/result`
  307.  
  308. dialog --title "Disk setup" --clear \
  309.         --msgbox \
  310.       "\n\
  311. This installation process assumes that the \n\
  312. disk drive $root_dev is used as follows:\n\
  313.   "$root_dev"1 - Linux boot image\n\
  314.   "$root_dev"2 - Root file system \n\
  315.   "$root_dev"3 - Swap space\n\
  316. \n" \
  317.    16 60 2> /tmp/result
  318.  
  319. # Get root device name
  320. dialog --title "Root Device Name" --clear \
  321.         --inputbox "Which partition for '/'?\n"\
  322.    16 51 "$root_dev"2 2> /tmp/result
  323. retval=$?
  324. case $retval in
  325.   1)
  326.     echo "Cancelled!"; exit;;
  327.   255)
  328.     continue;;
  329. esac
  330. root_part=`cat /tmp/result`
  331.  
  332. # Get swap device name
  333. dialog --title "Swap Device Name" --clear \
  334.         --inputbox "Which partition for swap?\n"\
  335.    16 51 "$root_dev"3 2> /tmp/result
  336. retval=$?
  337. case $retval in
  338.   1)
  339.     echo "Cancelled!"; exit;;
  340.   255)
  341.     continue;;
  342. esac
  343. swap_part=`cat /tmp/result`
  344.  
  345. # Get disk options
  346. dialog --title "Options for 'cfdisk'" --clear \
  347.         --inputbox "Options for 'cfdisk'?\n"\
  348.    16 51 "$cfdisk_options" 2> /tmp/result
  349. retval=$?
  350. case $retval in
  351.   1)
  352.     echo "Cancelled!"; exit;;
  353.   255)
  354.     continue;;
  355. esac
  356. cfdisk_options=`cat /tmp/result`
  357.  
  358. # Get file system options
  359. dialog --title "Options for 'mkfs'" --clear \
  360.         --inputbox "Options for 'mkfs'?\n"\
  361.    16 51 "$mkfs_options" 2> /tmp/result
  362. retval=$?
  363. case $retval in
  364.   1)
  365.     echo "Cancelled!"; exit;;
  366.   255)
  367.     continue;;
  368. esac
  369. mkfs_options=`cat /tmp/result`
  370.  
  371. # Customization complete, go do it!
  372. break
  373.  
  374. done
  375.  
  376. # All set, now do it!
  377.  
  378. dialog --title "Partitioning your disk" --clear \
  379.         --msgbox \
  380.       "\n\
  381. Please partition the disk drive $root_dev as follows:\n\
  382.   "$root_dev"1 - Type PowerPC, Bootable\n\
  383.   "$root_dev"2 - Type Linux, Most of disk\n\
  384.   "$root_dev"3 - Type Linux Swap, maybe 32 Mb\n\
  385. \n" \
  386.    16 60 2> /tmp/result
  387.  
  388. ifconfig eth0 $host_addr
  389. if [ "$gateway_addr" != "none" ] ; then
  390.    route add default gw $gateway_addr
  391. fi
  392.  
  393. #route add -net $network_addr netmask $network_mask broadcast $broadcast_addr
  394. route add -net $network_addr netmask $network_mask
  395.  
  396. TERM=linux
  397. export TERM
  398. cfdisk $root_dev $cfdisk_options
  399.  
  400. mke2fs $mkfs_options $root_part
  401. if [ "$install_type" != "Harddisk"  ] ; then
  402.  
  403. #rm -f /etc/mtab
  404. mount -t ext2 $root_part /mnt
  405. cd /mnt
  406.  
  407. fi
  408. case "$install_type" in
  409.    "Net")
  410. #      rsh $server_name -l $server_uid "cd $server_loc;find . -print | cpio -o" | cpio -iv --make-directories --preserve-modification-time ;;
  411.       rsh $server_name -l $server_uid "cd $server_loc;find . -print | cpio -o" | pax -rvup e ;;
  412.    "Packed Net")
  413. #      rsh $server_name -l $server_uid "cat $packed_loc" | cpio -iv --make-directories --preserve-modification-time ;;
  414.       rsh $server_name -l $server_uid "$gzip_cmd -d <$packed_loc" | pax -rvup e ;;
  415.     "Harddisk")
  416.         
  417.     $mkdir_cmd /callisto
  418.      mount -t ext2 $root_part /callisto
  419.     $gzip_cmd -d <$hpacked_loc | pax -rvup e
  420.      cd /callisto
  421.          ;;
  422.     "Diskettes")
  423.       echo
  424.       echo -n "Insert 'BUILD TOOLS' floppy: "
  425.       read XX
  426.       pax -rvf $floppy_dev
  427.       echo "Insert Base File system floppies (in order)"      
  428.       while :
  429.       do
  430.         echo -n "Insert next floppy - type N to quit: "
  431.         read XX
  432.         if [ "$XX" = "N" -o "$XX" = "n" ] ; then
  433.            break
  434.         fi
  435. #        gzip -d <$floppy_dev | cpio -iv --make-directories --preserve-modification-time
  436. #        bin/gzip -d <$floppy_dev | pax -rvup e
  437.       bin/dd if=$floppy_dev bs=36b | cat >>BASE_FILES.gz
  438.       done
  439.       bin/gzip -d <BASE_FILES.gz | pax -rvup e
  440.       bin/rm BASE_FILES.gz
  441.       ;;
  442.    "CDROM")
  443.       mount -o ro -t iso9660 /dev/sr0 /cdrom
  444.       pax -rvuf /cdrom/RedHat/base/basefs.tar
  445.       ;;
  446.    "MkLinux")
  447.       echo
  448.       echo -n "Insert CDROM-TOOLS floppy: "
  449.       read XX
  450.       pax -rvup e -f $floppy_dev
  451.       tmp/Install
  452.       ;;
  453.      "Tape")
  454.       mt -f $tape_dev rewind
  455.       mt -f $tape_dev fsf 2
  456. #      cpio -iv --make-directories --preserve-modification-time <$tape_dev
  457.       pax -rvuf $tape_dev -p e
  458.       mt -f $tape_dev rewind
  459.       mt -f $tape_dev fsf 1
  460.       ./bin/dd if=$tape_dev of="$root_dev"1 bs=256b
  461.       mt -f $tape_dev rewind
  462.       ;;
  463. esac      
  464.  
  465. # Create FSTAB
  466. cat >etc/fstab <<ZZZ
  467. $root_part / ext2 rw 1 1
  468. $swap_part none swap
  469. /proc   /proc   proc    defaults
  470. ZZZ
  471.  
  472. # Initialize swap partition
  473. sbin/mkswap $swap_part
  474.  
  475. ##if [ "$install_type" != "Diskettes" ] ; then
  476.  
  477. # Set up networking
  478.  
  479. cat >etc/sysconfig/network-scripts/ifcfg-eth0 <<ZZZ
  480. #!/bin/sh
  481.  
  482. #>>>Device type: ethernet
  483.  
  484. #>>>Variable declarations:
  485. DEVICE=eth0
  486. IPADDR=$host_addr
  487. NETMASK=$network_mask
  488. NETWORK=$network_addr
  489. BROADCAST=$broadcast_addr
  490. GATEWAY=$gateway_addr
  491. ONBOOT=yes
  492. #>>>End variable declarations
  493. ZZZ
  494.  
  495. cat >etc/sysconfig/network <<ZZZ
  496. NETWORKING=yes
  497. HOSTNAME=$host_name
  498. ZZZ
  499.  
  500. # End of network setup
  501. ##fi
  502.  
  503. cd /
  504. sync
  505. umount $root_part
  506. sync
  507.  
  508.